select  
        sum(T.cantidadCuentaContable),
        sum(T.cantidadPosicion),
        sum(T.cantidadFactura),
        sum(T.cantidadProvicionFactura),
        sum(T.cantidadProvisionSinFactura)
FROM (
        SELECT
        CP.[CHECKPOINT_ID] ,
        CP.[SOCIEDAD_ID] ,
        CP.NUMERO_DOCUMENTO_COMPRA ,
        CP.[ACREEDOR_ID] ,
        CP.[ACREEDOR_RAZON_SOCIAL] ,
        count(distinct CUENTA_CONTABLE_ID) cantidadCuentaContable,
        count(distinct posicion) cantidadPosicion,
        SUM (CASE 
            WHEN SUBSTRING (NUMERO_DOCUMENTO,1,2)= '20' THEN 1 
            ELSE 0 
        END) cantidadFactura,
        dbo.FN_PROVISION_FACTURA('S',CP.[CHECKPOINT_ID],CP.[SOCIEDAD_ID],CP.NUMERO_DOCUMENTO_COMPRA) cantidadProvicionFactura,
        dbo.FN_PROVISION_FACTURA('N',CP.[CHECKPOINT_ID],CP.[SOCIEDAD_ID],CP.NUMERO_DOCUMENTO_COMPRA) cantidadProvisionSinFactura,
        0 total
        FROM
        [dbo].[SGTM_OPERACION_CUENTA] CP
            INNER JOIN dbo.SGTM_SOCIEDAD S ON CP.SOCIEDAD_ID = S.SOCIEDAD_ID
           group by CP.[CHECKPOINT_ID] ,
        CP.[SOCIEDAD_ID] ,
        CP.NUMERO_DOCUMENTO_COMPRA ,
        CP.[ACREEDOR_ID] ,
        CP.[ACREEDOR_RAZON_SOCIAL]
) T

GO
DROP TABLE SGTM_OPERACION_CUENTA_FACT_PROV

CREATE TABLE [dbo].[SGTM_OPERACION_CUENTA_FACT_PROV] ( 
    [CHECKPOINT_ID]          	bigint NOT NULL ,
    [SOCIEDAD_ID]            	varchar(255) NOT NULL ,
    [NUMERO_DOCUMENTO_COMPRA]	varchar(25) NOT NULL ,
    [USUARIO]            	varchar(255) NULL,
    [ACREEDOR_ID]            	varchar(255) NOT NULL,
    [ACREEDOR_RAZON_SOCIAL]  	varchar(255) NULL,
    [CANTIDAD_CUENTA_CONTABLE]  bigint NOT NULL default 0,
    [CANTIDAD_POSICION]  bigint NOT NULL default 0,
    [CANTIDAD_FACTURA]  bigint NOT NULL default 0,
    [CANTIDAD_PROV_FACTURA]  bigint NOT NULL default 0,
    [CANTIDAD_PROV_SIN_FACTURA]  bigint NOT NULL default 0,
    [TOTAL_GENERAL] numeric(15,5) default 0,
    PRIMARY KEY  (CHECKPOINT_ID, SOCIEDAD_ID,NUMERO_DOCUMENTO_COMPRA,ACREEDOR_ID)
    )
GO

INSERT INTO [dbo].[SGTM_OPERACION_CUENTA_FACT_PROV] 
SELECT
        CP.[CHECKPOINT_ID] ,
        CP.[SOCIEDAD_ID] ,
        CP.NUMERO_DOCUMENTO_COMPRA ,
        CP.[USUARIO] ,
        CP.[ACREEDOR_ID] ,
        CP.[ACREEDOR_RAZON_SOCIAL] ,
        count(distinct CUENTA_CONTABLE_ID) cantidadCuentaContable,
        count(distinct posicion) cantidadPosicion,
        SUM (CASE 
            WHEN SUBSTRING (NUMERO_DOCUMENTO,1,2)= '20' THEN 1 
            ELSE 0 
        END) cantidadFactura,
        dbo.FN_PROVISION_FACTURA('S',CP.[CHECKPOINT_ID],CP.[SOCIEDAD_ID],CP.NUMERO_DOCUMENTO_COMPRA) cantidadProvicionFactura,
        dbo.FN_PROVISION_FACTURA('N',CP.[CHECKPOINT_ID],CP.[SOCIEDAD_ID],CP.NUMERO_DOCUMENTO_COMPRA) cantidadProvisionSinFactura,
        0 total
        FROM
        [dbo].[SGTM_OPERACION_CUENTA] CP
            INNER JOIN dbo.SGTM_SOCIEDAD S ON CP.SOCIEDAD_ID = S.SOCIEDAD_ID
            WHERE CP.NUMERO_DOCUMENTO_COMPRA IS NOT NULL
           group by CP.[CHECKPOINT_ID] ,
        CP.[SOCIEDAD_ID] ,
        CP.NUMERO_DOCUMENTO_COMPRA ,
        CP.USUARIO ,
        CP.[ACREEDOR_ID] ,
        CP.[ACREEDOR_RAZON_SOCIAL]


GO

DELETE FROM SGTM_OPERACION_CUENTA_FACT_PROV
GO

SELECT DISTINCT CHECKPOINT_ID FROM dbo.SGTM_OPERACION_CUENTA_FACT_PROV
GO


 SELECT
        DISTINCT CP.NUMERO_DOCUMENTO_COMPRA 
        FROM
        [dbo].[SGTM_OPERACION_CUENTA] T
        WHERE 
            T.CUENTA_CONTABLE_ID IN 
